home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software Vault: The Gold Collection
/
Software Vault - The Gold Collection (American Databankers) (1993).ISO
/
cdr37
/
satsfaxt.zip
/
CCPUTILS.ZIP
/
SAVE.H
< prev
next >
Wrap
C/C++ Source or Header
|
1990-01-30
|
14KB
|
316 lines
/*===========================================================================*
* CAS.H *
*---------------------------------------------------------------------------*
* Header file that defines the various structures and *
* constants used in implementing the Intel/DCA Communicating *
* Applications Specification C Programming Interface 1.0A. *
* *
* The following source code is intended to assist developers in *
* creating applications which support the DCA/Intel Communicating *
* Applications Specification Version 1.0A. It is provided free of charge *
* and on an as-is basis. THE IMPLIED WARRENTIES OF MERCHANTABILITY AND *
* FITNESS FOR A PARTICULAR PURPOSE ARE SPECIFICALLY EXCLUDED. This source *
* code may be modified, enhanced, copied and distributed with applications *
* that support CAS on a royalty free basis. *
*===========================================================================*/
#include <dos.h>
#pragma pack(1) /* All structures MUST be placed
on byte boundries */
/* Structures needed for MS C int86 & int86x library functions. */
union REGS InRegs, OutRegs; /* General registers in & out */
struct SREGS SegRegs; /* Segment registers */
#define TRUE 1 /* Logical true */
#define FALSE 0 /* Logical false */
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef unsigned long LONGWORD;
typedef struct CAS_Date {
WORD Year; /* Date structure */
BYTE Month;
BYTE Day;
} CAS_DATE;
typedef struct CAS_Time {
BYTE Hour; /* Time structure */
BYTE Minute;
BYTE Second;
} CAS_TIME;
/* EXTERNAL DATA BLOCK */
typedef struct EDBlock {
BYTE CASMajorVer; /* CAS major version number */
BYTE CASMinorVer; /* CAS minor version number */
char DefaultDir[68]; /* Path to Resident Manager */
char DefaultPhonebook[13]; /* Phone book file name */
char DefaultLogo[13]; /* Logo file name */
char DefaultSender[32]; /* Name specified during installation */
char CSID[21]; /* CCITT identification */
BYTE RESERVED[107]; /* Reserved for Intel use */
} EDB;
/* SINGLE FILE TRANSFER RECORD */
typedef struct SingleFTR {
BYTE TransferType; /* Type of transfer (file, fax etc) */
BYTE TextSize; /* 0:80colx66lin, 1:132colx88lin */
WORD EventTime; /* Time to send in DOS packed format */
WORD EventDate; /* Date to send in DOS packed format */
char DestinationName[32]; /* To: field */
char FileName[80]; /* Path name of this file */
char Phone[47]; /* Phone # to call */
char ApplicationTag[64]; /* Application specific tag field */
char RESERVED1; /* Reserved for Intel use */
BYTE SendCover; /* 1:Send, 0:Don't send cover page */
char RESERVED2[23]; /* Reserved for Intel use */
char CoverPageText[2880]; /* Alias for cover page text */
} SFTR;
/* TASK CONTROL FILE STRUCTURE */
typedef struct EventControlFile {
BYTE EventType; /* Type of event (send, receive etc) */
BYTE TransferType; /* Type of transfer (file, fax etc) */
int EventStatus; /* Status of event */
WORD EventTime; /* Time to send or time received */
WORD EventDate; /* Date to send or date received */
int FileCount; /* Number of files to transfer */
WORD FTROffset; /* Offset of first FTR |in TCF on disk */
char Phone[47]; /* [0-9] and [,!PTM*#] have meaning */
char ApplicationTag[64]; /* Application specific tag field */
BYTE RESERVED1; /* Reserved for Intel use */
BYTE ConnectSeconds; /* Time length of connection: seconds */
BYTE ConnectMinutes; /* Time length of connection: minutes */
BYTE ConnectHours; /* Time length of connection: hours */
LONGWORD TotalPages; /* Total # of pages in all files */
LONGWORD PagesSent; /* Number of pages transmitted so far */
WORD FilesSent; /* Number of files transmitted so far */
BYTE SendCover; /* 1:Send/0:don't send cover page */
WORD ErrorCount; /* Total # of tranmission errors */
BYTE RESERVED2[78]; /* Reserved for Intel use */
char RemoteCSID[21]; /* Remote CCITT identification */
char DestinationName[32]; /* To: field */
char SenderName[32]; /* From: field */
char LogoFilePath[80]; /* Path to logo file that is sent */
} ECF;
/* FILE TRANSFER RECORD */
typedef struct FileTransferRecord {
BYTE FileType; /* Type of file (ASCII, PCX, DCX) */
BYTE TextSize; /* 0:80colx66lin, 1:132colx88lin */
BYTE FileStatus; /* Status of file (opened, moved etc) */
LONGWORD BytesSent; /* Bytes transmitted so far */
LONGWORD FileSize; /* Size of file in bytes */
WORD PagesSent; /* Pages transmitted so far */
WORD PageCount; /* # of pages in this file */
char FileName[80]; /* Path name of this file */
BYTE AddPageIncrements; /* Additional 1/8 inch increments */
BYTE PageLength; /* Page length in inches */
char RESERVED[31]; /* Reserved for Intel use */
} FTR;
/* CURRENT EVENT CONTROL STRUCTURE */
typedef struct CurrentEventControlStruct {
ECF ControlFile; /* Control file of current event */
FTR CurrentFileInTransit; /* The FTR controlling the current file
transfer */
} CECS;
/* QUEUE STATUS */
typedef struct QStat {
int QChanges; /* # changes since CCAM installed */
int QControlFiles; /* Current # control files in queue */
int QReceivedFiles; /* Current # receive files in queue */
} QSTAT;
/* HARDWARE STATUS */
typedef struct HWStat {
BYTE TransmissionStatus; /* bit fields for transmission status */
int RESERVED1; /* reserved field */
BYTE RetriesLeft; /* number of retries left */
BYTE RESERVED2; /* reserved field */
BYTE PhoneLineStatus; /* bit fields for phone line status */
BYTE BaudRateStatus; /* bit fields for baud rate status */
char RESERVED3[3]; /* reserved field */
BYTE HardwareStatus1; /* additional status bit fields */
BYTE ComIOPorts; /* bit fields for I/O and COM ports */
BYTE HardwareStatus2; /* additional status bit fields */
char RESERVED4; /* reserved field */
WORD ErrorCount; /* receiving/transmission errors */
char RESERVED5[14]; /* reserved field */
char RemoteCSID[21]; /* CSID of the remote hardware */
char RESERVED6[77]; /* reserved field */
} HWSTAT;
/* Data file header id values - used in graphic data files (PCX & DCX). */
#define PCXID 0x0A /* Id byte value for PCX files. */
#define PCXENCODE 1 /* Encoding method for PCX files. */
#define DCXID 987654321 /* Id word value for DCX files. */
/* PCX FILE HEADER */
typedef struct PCXFileHeader {
BYTE PCXid; /* Must be A0h ..Whoa! That's not 1 byte!*/
BYTE Version; /* 2 suggested; 2 or more allowed */
BYTE EncodingMethod; /* Must be 1 */
BYTE BitsPerPixel; /* Must be 1 for Fax Mode transer */
WORD xMinPos; /* X position of upper left corner,
usually 0 */
WORD yMinPos; /* Y position of upper left corner,
usually 0 */
WORD xMaxPos; /* X position of bottom right corner,
maximum 1728. xMaxPos - xMinPos + 1
must be a multiple of 8 */
WORD yMaxPos; /* Y position of bottom right corner,
2200 recommended maximum. */
WORD HResolution; /* Display card horizontal resolution,
ignored in Fax mode. 640
recommended */
WORD VResolution; /* Display card vertical resolution,
ignored in Fax mode. 200
recommended */
BYTE Palette[48]; /* Ignored in Fax mode; set to 0 */
BYTE Reserved1; /* Must be 0 */
BYTE ColorPlanes; /* Must be 1 for Fax mode */
WORD HorizLineBytes; /* Horizontal line width in bytes */
char Reserved2[60]; /* Should be 0. (..now, what the #!%@
does 'should' mean?) */
char *ImageData;
} PCXFILE;
/* DCX FILE STRUCTURE */
typedef struct DCXFileStruct {
LONGWORD DXCid; /* Always 987,654,321 */
LONGWORD *PageOffsets; /* Variable-length array of 4-byte
offsets, ending w/a 0 offset value */
} DCXFILE;
/* Used to specify direction of search in CASFindFirst & CASFindNext. */
#define SEARCH_FORWARD 0 /* Search forward chronologically */
#define SEARCH_BACKWARD 1 /* Search backward chronologically */
/* Needed for calls to the Resident Manager. */
#define CASCALL 0x2F /* Resident Manager Interrupt vector */
#define MULTIPLEX 0xCB /* Default Multiplex number */
/* CAS call constants */
#define INSTALLEDSTATE 0x00 /* CASGetInstalledState */
#define SUBMITTASK 0x01 /* CASSubmitTask */
#define ABORTCURRENT 0x02 /* CASAbortCurrentEvent */
#define FINDFIRST 0x05 /* CASFindFirst */
#define FINDNEXT 0x06 /* CASFindNext */
#define OPENFILE 0x07 /* CASOpenTaskFile */
#define DELETEFILE 0x08 /* CASDeleteFile */
#define DELETEALL 0x09 /* CASDeleteAllFiles */
#define GETEVENTDATE 0x0A /* CASGetEventDate */
#define SETEVENTDATE 0x0B /* CASSetEventDate */
#define GETEVENTTIME 0x0C /* CASGetEventTime */
#define SETEVENTTIME 0x0D /* CASSetEventTime */
#define GETEDB 0x0E /* CASGetExternalData */
#define AUTORCVSTATE 0x0F /* CASARState */
#define GETEVENTSTATUS 0x10 /* CASGetEventStatus */
#define GETQUEUESTATUS 0x11 /* CASGetQueueStatus */
#define GETHWSTATUS 0x12 /* CASGetHardwareStatus */
#define RUNDIAGNOSTICS 0x13 /* CASRunDiagnostics */
#define MOVEFILE 0x14 /* CASMoveReceivedFile */
#define SUBMITSINGLE 0x15 /* CASSubmitSingleFile */
#define UNINSTALL 0x16 /* CASUnistall */
/* EventType constants */
#define SEND 0 /* Immediate send event */
#define RECEIVE 1 /* Immediate receive event */
#define POLLED_SEND 2 /* Polled send event */
#define POLLED_RECEIVE 3 /* Polled receive event */
/* TransferType constants */
#define FAX_200 0 /* 200x200 dpi fax mode */
#define FAX_100 1 /* 100x100 dpi fax mode */
#define FILE_TRANSFER 2 /* File transfer mode */
/* EventStatus constants */
#define NO_PENDING -516 /* No pending events */
#define ANY_STATUS -1 /* Any status (used in CASFindFirst) */
#define COMPLETED 0 /* Event was successfully completed */
#define WAITING 1 /* Waiting to be processed */
#define DIALED 2 /* Number has been dialed */
#define SENDING 3 /* Connection made -- sending */
#define RECEIVING 4 /* Connection made -- receiving */
#define ABORTED 5 /* Event was aborted */
#define NEW_STATUS 6 /* Event has not been viewed before */
/* CoverPage constants */
#define NO_COVER 0 /* Do NOT send cover page */
#define COVER 1 /* Send cover page */
/* FILE TRANSFER RECORD CONSTANTS */
/* FileType constants */
#define ASCII 0 /* ASCII file */
#define PCX 1 /* PCX encoded graphics page */
#define DCX 2 /* PCX encoded graphics document */
/* TextSize constants */
#define NORMAL 0 /* 80 columns by 66 lines */
#define SMALL 1 /* 132 columns by 88 lines */
/* FileStatus constants */
#define UNTOUCHED 0 /* File has not been modified */
#define OPENED 1 /* File has been opened */
#define MOVED 2 /* File has been moved */
#define DELETED 3 /* File was deleted */
#define NOT_RECEIVED 4 /* File is not yet received */
/* CPI FUNCTION CONSTANTS */
/* Used to specify the Queue to take action on. Used in various CAS calls. */
#define NO_QUEUE -1 /* Event number not in any Queue. */
#define TASK_QUEUE 0 /* Take action on Task Queue */
#define TASK_QUEUE 0 /* Take action on Task Queue */
#define RECEIVE_QUEUE 1 /* Take action on Receive Queue */
#define LOG_QUEUE 2 /* Take action on Log Queue */
/* Used to specify whether to START or STATUS diagnostics in CASRunDiagnostics. */
#define START 1 /* Start diagnostics running */
#define STATUS 0 /* Report status without waiting */
/* Used to specify whether to GET or SET Auto Receive state in CASARState. */
#define GETARS 0 /* Get Autoreceive state */
#define SETARS 1 /* Set Autoreceive state */
/* Auto Receive State modes. */
#define AR_OFF 0 /* Hardware is not set to Autoreceive */
#define AR_ON 1 /* Hardware is set to Autoreceive */
/* Used to determine if the Resident Manager has been installed in CASGetInstalledState. */
#define NOTiOK 0 /* Not installed, OK to install */
#define NOTiNO 1 /* Not installed, NOT OK to install */
#define INSTALLED 0xFF /* Resident Manager is installed */
/* Return values from CASCPI calls. */
#define SUCCESS 0 /* Call was successfully completed */
#define FAIL 1 /* Call was unsuccessfully completed */
#define RUNNING 2 /* Diagnostics are running */
extern int pascal CASGetInstalledState(void);
extern int pascal CASSubmitTask(char *TaskControlFile);
extern int pascal CASAbortCurrentEvent(void);
extern int pascal CASFindFirst(int status, BYTE direction, BYTE queue);
extern int pascal CASFindNext(BYTE queue);
extern int pascal CASOpenFile(int event_hdl, int file_no, BYTE queue);
extern int pascal CASDeleteFile(int event_hdl, int file_no, BYTE queue);
extern int pascal CASDeleteAllFiles(BYTE queue);
extern int pascal CASGetEventDate(int event_hdl, BYTE queue, CAS_DATE *date);
extern int pascal CASSetTaskDate(int event_hdl, CAS_DATE *date);
extern int pascal CASGetEventTime(int event_hdl, int queue, CAS_TIME *time);
extern int pascal CASSetTaskTime(int event_hdl, CAS_TIME *time);
extern int pascal CASGetExternalData(EDB *extern_data);
extern int pascal CASAutoReceiveState(BYTE mode, BYTE *rings);
extern int pascal CASGetCurrentEventStatus(CECS *current_event_info);
extern int pascal CASGetQueueStatus(BYTE Queue, QSTAT *status);
extern int pascal CASGetHardwareStatus(HWSTAT *status);
extern int pascal CASRunDiagnostics(BYTE mode);
extern int pascal CASMoveReceivedFile(int event_hdl, int file_no, char *filespec);
extern int pascal CASSubmitSingleFile(SFTR *OneFileInfo);
extern int pascal CASUnloadResidentManager(void);